package robot.io.infos;

import environnement.Environnement;
import java.util.ArrayList;
import java.util.List;
import robot.IRobot;

public class Centre implements IInfos
{

    /**
     * Valeur de l'information distance entre
     */
    double valeur = 0;
    /**
     *
     */
    List<Double> alScore = new ArrayList<Double>();


    public List<Double> getAlScore()
    {
        return alScore;
    }

    public void setAlScore(List<Double> alScore)
    {
        this.alScore = alScore;
    }


    /**
     * Modifie la valeur de l'info
     */
    @Override
    public void setValeur(double valeur)
    {
        // Modifie la distance au centre
        this.valeur = valeur;
    }

    /**
     * Retourne la valeur de l'info
     */
    @Override
    public double getValeur()
    {
        // Retourne la distance au centre
        return this.valeur;
    }

    @Override
    public void miseAJourInfo(IRobot robot)
    {
        //
        Environnement env = Environnement.getInstance();

        double dPointCentreX = env.getLargeur() / 2;
        double dPointCentreY = env.getLongueur() / 2;

        double dSegmentTotX = Math.abs(dPointCentreX - 0);
        double dSegmentTotY = Math.abs(dPointCentreY - env.getLongueur());
        double dSegmentTot = Math.sqrt(dSegmentTotX + dSegmentTotY);

        double dSegmentX = Math.abs(dPointCentreX - robot.getX());
        double dSegmentY = Math.abs(dPointCentreY - robot.getY());
        double dSegment = Math.sqrt(dSegmentX + dSegmentY);
        
        this.valeur = (dSegmentTot - dSegment)/dSegmentTot;
        

        this.alScore.add(this.valeur);

    }
}
